import Fly from './flyio/index';
const fly = new Fly();
const app = getApp();
class Http {
    constructor() {
        this.initFlySetting();
    }

    /**
     * @description 初始化Flyio配置，全局的拦截处理
     */
    initFlySetting() {
        //定义请求的基本路径
        fly.config.baseURL = app.globalData.rootPath;
        //请求拦截器
        fly.interceptors.request.use((request) => {
            if (request.method == 'POST') {
                //拦截处理
                request.headers = {
                    //请求头
                    'Content-Type': 'application/json',
                };
            }
            if (request.method == 'GET') {
                //拦截处理
                request.headers = {
                    //请求头
                    'Content-Type': 'application/x-www-form-urlencoded',
                };
            }
            return request;
        });

        //响应拦截
        fly.interceptors.response.use((response) => {
            //拦截处理操作
            if (response.status == 200) {
                if (response.data.status == 0) {
                    return response.data;
                } else {
                    //全局错误处理
                    if (response.data.errmsg == '参数authId未上传或值为空') {
                        wx.showToast({
                            title: '身份已过期，请重新登录！',
                            icon: 'none',
                            duration: 2000,
                        });
                    } else if (response.data.errmsg == '身份信息过期') {
                        app.globalData.authority = '-1';
                        wx.showModal({
                            title: '提示：',
                            content: '你的访问权限已被关闭。',
                            showCancel: false,
                            confirmText: '我知道了',
                            success(res) {
                                if (res.confirm) {
                                    setTimeout(function () {
                                        wx.switchTab({
                                            url: `/pages/index/index`,
                                        });
                                    }, 1500);
                                }
                            },
                        });
                    } else {
                        wx.showToast({
                            title: response.data.errmsg,
                            icon: 'none',
                            duration: 2000,
                        });
                    }
                }
            }
            if (response.status == 504) {
                wx.showToast({
                    title: '服务器暂无响应，请稍后再试',
                    icon: 'none',
                    duration: 2000,
                });
            }
            if (response.status == 502 || response.status == 404) {
                wx.showToast({
                    title: '服务器异常，请稍后再试',
                    icon: 'none',
                    duration: 2000,
                });
            }
            if (response.status == 500) {
                wx.showToast({
                    title: '数据库异常，请稍后再试',
                    icon: 'none',
                    duration: 2000,
                });
            }
        });
    }

    /**
     *
     * @param 封装的get请求： url:请求地址  data：请求数据
     */
    getRequest(url, data) {
        return fly.get(url, data);
    }

    /**
     *
     * @param 封装的post请求： url:请求地址  data：请求数据 options:请求额外参数
     */
    postRequest(url, data, options) {
        return fly.post(url, data, options);
    }
}
export default Http;
